#pragma once
#include "symbols.h"
#include "attributes.h"
#include "nodes.h"
#include "classes.h"
#include "node.h"
#include "criteria.h"
#include "selector.h"
#include "accessors.h"

#include "node_impl.h"
#include "nodes_impl.h"
#include "classes_impl.h"
#include "criteria_impl.h"
#include "selector_impl.h"
#include "attributes_impl.h"

/// @brief namespace that binds all HTML related classes
namespace html { 
  /// @brief classes to manage HTML DOM (document object model)
  namespace dom { }
  /// @brief HTML parser based on boost::spirit
  namespace parser {
    /// @todo preventing own headers for dummies in 21 days?
    bool read(const std::string& s, html::dom::root_node root);
    bool read(std::istream& is, html::dom::root_node root);
  }
}
